package com.funo.main.dao;

import java.util.List;

import com.funo.common.pojo.QueryCondition;
import com.funo.main.entities.Module;

/**
 * 模块管理接口类
 * 
 * @author zhengjs
 *
 */
public interface ModuleDao {
	
	//List<Module> getAll();

	/**
	 * 查询所有父类节点信息
	 */
	List<Module> getMenu();

	/**
	 * 查询对应父类的所有子节点信息
	 * 
	 * @param id 父节点id
	 * @return 对应父类的所有子节点信息
	 */
	List<Module> getMenu(String id);

	/**
	 * 分页显示所有模块信息
	 * 
	 * @param condition 查询条件集合
	 * @return 分页显示所有模块信息
	 */
	List<Module> pageList(QueryCondition condition);

	/**
	 * 查询模块信息的记录数
	 * 
	 * @param condition 查询条件集合
	 * @return 返回一个整型数字
	 */
	Integer count(QueryCondition condition);
	
	/**
	 * 查询模块信息
	 * 
	 * @param text 名称
	 * @return 模块信息
	 */
	Module getModule(String text);
	
	/**
	 * 保存模块信息
	 * 
	 * @param module 模块表
	 */
	void save(Module module);

	/**
	 * 删除模块信息
	 * 
	 * @param id 主键ID
	 */
	void delete(String id);

	/**
	 * 修改模块信息
	 * 
	 * @param module 模块表
	 */
	void update(Module module);

	/**
	 * 获取模块信息
	 * 
	 * @param id 主键ID
	 * @return 模块信息
	 */
	Module get(String id);
	
	/**
	 * 根据模块名称和主键id，查询模块对象，用作修改查找重名。
	 * 
	 * @param text
	 * 		    名称
	 * @param id 
	 * 		  主键id
	 * @return 模块对象
	 */
	public Module findModuleByText(String text,String id);
}
